package com.zbkj.service.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.zbkj.common.model.user.UserCashRecord;
import com.zbkj.common.request.AdminCashSearchRequest;
import com.zbkj.common.request.PageParamRequest;
import com.zbkj.common.response.UserCashRecordResponse;

import java.util.List;

/**
 * 用户礼金记录service
 *
 * @author Swallows
 * @date 2022-09-26 10:51
 */
public interface UserCashRecordService extends IService<UserCashRecord> {

    /**
     * 礼金解冻
     */
    void cashThaw();

    /**
     * 根据订单编号 用户id查询礼金记录
     *
     * @param orderNo 订单编号
     * @param uid 用户id
     * @return 记录列表
     */
    List<UserCashRecord> findListByOrderIdAndUid(String orderNo, Integer uid);

    /**
     * PC后台列表
     * @param request 搜索条件
     * @param pageParamRequest 分页参数
     * @return 记录列表
     */
    PageInfo<UserCashRecordResponse> findAdminList(AdminCashSearchRequest request, PageParamRequest pageParamRequest);

    /**
     * 根据类型条件计算礼金总数
     *
     * @param uid 用户id
     * @param type 类型 1增加 2扣减
     * @param date 日期
     * @param linkType 关联类型
     * @return 礼金总数
     */
    Integer getSumCash(Integer uid, Integer type, String date, String linkType);

    /**
     * 用户礼金列表
     *
     * @param uid 用户id
     * @param pageParamRequest 分页参数
     * @return 礼金列表
     */
    List<UserCashRecord> findUserCashRecordList(String type, Integer uid, PageParamRequest pageParamRequest);
}
